
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include "MessageQueue.h"

int main() {
    key_t key;
    int msqid;
    Message message;

    // 获取消息队列标识符
    key = ftok(".", 'm');
    if (key == -1) {
        perror("ftok");
        exit(EXIT_FAILURE);
    }

    msqid = msgget(key, 0666);
    if (msqid == -1) {
        perror("msgget");
        exit(EXIT_FAILURE);
    }

    // 发送消息
    while (1) {
        printf("Enter message: ");
        fgets(message.mtext, MAX_MSG_SIZE, stdin);

        // 去除换行符
        message.mtext[strcspn(message.mtext, "\n")] = 0;

        // 发送消息至消息队列
        message.mtype = MSG_TYPE;
        if (msgsnd(msqid, &message, strlen(message.mtext) + 1, 0) == -1) {
            perror("msgsnd");
            exit(EXIT_FAILURE);
        }

        // 发送"exit"消息后退出循环
        if (strcmp(message.mtext, "exit") == 0) {
            break;
        }
    }

    return 0;
}
